package com.naiterui.ehp.bs.recommend.service;

import com.naiterui.ehp.bp.bo.esign.PreSignResultBO;
import com.naiterui.ehp.bp.bo.recommend.param.RecomAuditParamBO;
import com.naiterui.ehp.bp.support.exception.BusinessException;
import com.naiterui.ehp.bs.recommend.bean.RecomEsignPharmacist;

/**
 * @author guoyongxiang
 * @date 2019-06-20 14:56
 * @since 1.0.0
 */
public interface IRecomAuditService {

  /**
   * 药师处方预签署(发送验证码)
   *
   * @param recomId
   * @param pharmacistId
   */
  PreSignResultBO preSignPh(Long recomId, Long pharmacistId) throws BusinessException;

  /**
   * 处方药师签名
   *
   * @param auditParamBO
   * @param operator
   */
  void pharmacistSign(RecomAuditParamBO auditParamBO, String operator) throws BusinessException;

  /**
   * 处方审核
   *
   * @param auditParamBO
   * @param operator
   */
  void audit(RecomAuditParamBO auditParamBO, String operator) throws BusinessException;

  /**
   * 处方审核开关设置
   *
   * @param auditType
   * @param remark
   */
  void auditConfig(Integer auditType, String remark, String operator);

  /**
   * 药师签名
   *
   * @param recomId
   * @param user
   * @param signPwd
   * @throws BusinessException
   */
  void pharmacistSign(Long recomId, String uniqueId,RecomEsignPharmacist user, String signPwd) throws BusinessException;

  /**
   * 重新分配处方
   *
   * @throws BusinessException
   */
  void assignAuditPharmacis() throws BusinessException;

  /**
   * 筛选超时处方 1.设置审核状态为已失效 2.发送push消息到医生端，更新审核文案为：处方超时未审核，已失效（按审核不通过状态值处理）
   */
  void updateExpired();

  /**
   * 汇总未审核处方并发送短信 每天两个时段「11:30」及「17:30」给管理员发送统计短信，统计截至当前时间有多少条待审核处方。 短信文案： 有未处理情况：【海南童缘】平台有%s个处方仍未审核，可登录后台查看，请及时与相关药师进行沟通。
   * 无未处理情况：【海南童缘】平台当前无待审核处方，请知悉。
   */
  void summaryPendingRecom();


}
